<template>
  <Drawer
    v-if="getIsMobile"
    placement="left"
    :class="prefixCls"
    :width="getMenuWidth"
    :getContainer="null"
    :open="!getCollapsed"
    @close="handleClose"
  >
    <Sider />
  </Drawer>
  <MixSider v-else-if="getIsMixSidebar" />
  <Sider v-else />
</template>
<script lang="ts">
  import { defineComponent } from "vue"

  import Sider from "./LayoutSider.vue"
  import MixSider from "./MixSider.vue"
  import { Drawer } from "ant-design-vue"

  import { useAppInject } from "/@/hooks/web/useAppInject"
  import { useMenuSetting } from "/@/hooks/setting/useMenuSetting"
  import { useDesign } from "/@/hooks/web/useDesign"
  export default defineComponent({
    name: "SiderWrapper",
    components: { Sider, Drawer, MixSider },
    setup() {
      const { prefixCls } = useDesign("layout-sider-wrapper")
      const { getIsMobile } = useAppInject()
      const { setMenuSetting, getCollapsed, getMenuWidth, getIsMixSidebar } = useMenuSetting()

      function handleClose() {
        setMenuSetting({
          collapsed: true,
        })
      }

      return { prefixCls, getIsMobile, getCollapsed, handleClose, getMenuWidth, getIsMixSidebar }
    },
  })
</script>
<style lang="less">
  @prefix-cls: ~"@{namespace}-layout-sider-wrapper";

  .@{prefix-cls} {
    .ant-drawer-body {
      height: 100vh;
      padding: 0;
    }

    .ant-drawer-header-no-title {
      display: none;
    }
  }
</style>
